/**
 * normSDist(z): 计算标准正态分布的累积分布函数。
 * erf(x): 计算误差函数，用于实现累积分布函数。
 * 调用 normSDist(z) 并传入你需要的 Z 值，就可以得到与 Excel 中 NORM.S.DIST(Z, TRUE) 相同的结果
 */

function normSDist(z) {
    // 计算标准正态分布的累积分布函数值
    const probability = 0.5 * (1 + erf(z / Math.sqrt(2)));
    return probability.toFixed(2); // 保留两位小数
}

function erf(x) {
    // 近似计算误差函数
    const sign = (x >= 0) ? 1 : -1;
    x = Math.abs(x);

    // 常数
    const a1 = 0.254829592;
    const a2 = -0.284496736;
    const a3 = 1.421413741;
    const a4 = -1.453152027;
    const a5 = 1.061405429;
    const p = 0.3275911;

    // 计算 t
    const t = 1 / (1 + p * x);
    const y = 1 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);

    return sign * y; // 返回结果
}